/**
 *  @file XmlWriterSettings.h
 */

#ifndef _XMLWRITERSETTINGS_H_
#define _XMLWRITERSETTINGS_H_

#include "../../common/BaseObject.h"
#include "../../io/Writer.h"
#include "../../text/UTFCharConv.h"

namespace cppflib
{

namespace xml
{

namespace writer
{

typedef enum _indentchars
{
   INCH_1_SP,     ///< 1 space
   INCH_2_SP,     ///< 2 spaces
   INCH_3_SP,     ///< 3 spaces
   INCH_1_TAB,    ///< 1 tab
} indentchars_t;

typedef enum _newlinechars
{
   NLCH_LF,    // '\n'
   NLCH_CRLF,  // '\r\n'
} newlinechars_t;

/**
 *  Structure containing settings for a XmlWriter
 */
typedef struct _xmlwritersettings
{
   bool closeOutputWriter;   // close the underlying 'Writer' when closing XmlWriter
   cppflib::text::charset_t charSet;
   bool indent;
   indentchars_t indentChars;
   newlinechars_t newLineChars;
   bool includeXmlDeclaration;
} xmlwritersettings_t;




} // end of namespace writer

} // end of namespace xml

} // end of namespace cppflib


#endif
